﻿//----------------------------------------------------------------
// Desc: 世界管理器
// Edit: ShowLong, http://blog.csdn.net/showlong
//
// Date Created: 2012-04-04
//
// Update Date : 
//
// Copyright (c) Fuel4D (http://www.fuel4d.com), All rights reserved.
//
//----------------------------------------------------------------
#pragma once


#include "Engine/IFWod_Objects.h"


class IFWorldMgr : public IFService
{
protected:
    IFWorldMgr()
        :IFService(0)
    {}

public:
    // 打开世界
    virtual bool Open(const WCHAR* filename) = 0;
    virtual bool Open(const ACHAR* filename) = 0;
    // 进入某个场景
    virtual bool Enter(const WCHAR* scene_name, FVECTOR2& sit) = 0;
    virtual bool Enter(const ACHAR* scene_name, FVECTOR2& sit) = 0;
    // 当前是否在某个场景中
    virtual bool IsInScene() = 0;
    // 取得当前的场景名
    virtual const ACHAR* GetNowScene() = 0;
    // 取得当前鼠标相对于场景原点偏移位置
    virtual const FVECTOR2* GetWorldCursor() = 0;
    // 取得当前主角的战立位置（象素）
    virtual const FVECTOR2* GetWorldSit() = 0;
    // 获取场景中的指定对象，只返回第一个找到的
    virtual IFWodObject* GetObject(const WCHAR* name, bool sub_lv) = 0;
    virtual IFWodObject* GetObject(const ACHAR* name, bool sub_lv) = 0;
    // 取得资源仓库
    virtual IFWodResFactory* GetResFactory() = 0;
};

#include "Engine/IFWorldMgr_inl.h"